package controle;

import java.util.List;

import modelo.bean.Topico;
import modelo.dao.GenericoDAO;
import modelo.dao.impl.TopicoDAOImpl;

public class TopicoControle {
	private Topico topico;
	private List<Topico> listaDeTopicos;

	private TopicoDAOImpl topicoDAOImpl;
	private GenericoDAO genericoDAO;

	public TopicoControle(Topico topico) {
		this.topico = topico;
		DAOdeTopico();
	}

	private void DAOdeTopico() {
		if (topico == null) {
			topico = new Topico();
		}
		if (topicoDAOImpl == null) {
			topicoDAOImpl = new TopicoDAOImpl(topico);
		}
		genericoDAO = topicoDAOImpl;
		genericoDAO.changeSeed(topico);
	}

	public boolean criar() {
		return genericoDAO.criar();
	}

	public Topico find(Long id) {
		topico= (Topico)genericoDAO.recuperar(id);
		return  topico;
	}

	@SuppressWarnings("unchecked")
	public List<Topico> listarTodos() {
		return (List<Topico>) genericoDAO.listarTodos();
	}

	public boolean excluir(Long id) {
		topico = (Topico) genericoDAO.recuperar(id);
		return genericoDAO.deletar();
	}

	public boolean alterar(Topico t) {
		topico = t;
		return genericoDAO.editar();
	}

	public Topico getTopico() {
		return topico;
	}

	public void setTopico(Topico topico) {
		this.topico = topico;
	}

	public List<Topico> getListaDeTopicos() {
		return listaDeTopicos;
	}

	public void setListaDeTopicos(List<Topico> listaDeTopicos) {
		this.listaDeTopicos = listaDeTopicos;
	}
}
